import { IPSAppView } from '../../app/view/ipsapp-view';
import { IPSNavigateParamContainer } from '../ipsnavigate-param-container';
import { IPSDEFormDetail } from './ipsdeform-detail';
import { IPSDEFormItemUpdate } from './ipsdeform-item-update';

/**
 *
 * 继承父接口类型值[DRUIPART]
 * @export
 * @interface IPSDEFormDRUIPart
 */
export interface IPSDEFormDRUIPart extends IPSDEFormDetail, IPSNavigateParamContainer {
  /**
   * 嵌入视图
   *
   * @type {IPSAppView}
   */
  getPSAppView(): IPSAppView | null;

  /**
   * 嵌入视图
   *
   * @type {IPSAppView}
   */
  get psAppView(): IPSAppView | null;

  /**
   * 嵌入视图（必须存在）
   *
   * @type {IPSAppView}
   */
  getPSAppViewMust(): IPSAppView;

  /**
   * 调用表单项更新
   *
   * @type {IPSDEFormItemUpdate}
   */
  getPSDEFormItemUpdate(): IPSDEFormItemUpdate | null;

  /**
   * 调用表单项更新
   *
   * @type {IPSDEFormItemUpdate}
   */
  get psDEFormItemUpdate(): IPSDEFormItemUpdate | null;

  /**
   * 调用表单项更新（必须存在）
   *
   * @type {IPSDEFormItemUpdate}
   */
  getPSDEFormItemUpdateMust(): IPSDEFormItemUpdate;

  /**
   * 界面参数项名称
   * @type {string}
   */
  paramItem: string;

  /**
   * 父数据对象
   * @type {IModel}
   */
  parentDataJO: IModel;

  /**
   * 界面刷新触发表单项
   * @type {string}
   */
  refreshItems: string;

  /**
   * 需要进行保存
   * @type {boolean}
   */
  needSave: boolean;

  /**
   * 附加刷新项只赋值不刷新
   * @type {boolean}
   */
  refreshItemsSetParamOnly: boolean;
}
